home *** CD-ROM | disk | FTP | other *** search
/ The PC-SIG Library 10 / The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso / PC_SIGCD / 02 / 0 / DISK0202.ZIP / TSTINT.C < prev    next >
Text File  |  1984-01-01  |  2KB  |  86 lines

  1. /*
  2.  * tstint.c  17 Nov 83  Craig Milo Rogers at USC/ISI
  3.  *
  4.  *    This program tests int_pkg.c, the interrupt allocation package.
  5.  */
  6.  
  7. #define M_TSTINT        /* For debugging. */
  8.  
  9. #include "stdio.h"
  10.  
  11. #include "truth.h"
  12. #include "beauty.h"
  13.  
  14. #include "exmem.h"
  15.  
  16. bool int_setup();        /* Type declarations. */
  17. bool int_restore();
  18. long int_prev();
  19.  
  20.  
  21. main(argc, argv)
  22. int argc;            /* Number of command arguments. */
  23. char *argv[];            /* Pointers to argument strings. */
  24. {
  25.     long prevvec;        /* Previous vector contents. */
  26.  
  27.     printf("Initializing Interrupt Package.\n");
  28.     int_ini();
  29.  
  30.     printf("Terminating Interrupt Package.\n");
  31.     int_trm();
  32.  
  33.     printf("Initialization again.\n");
  34.     int_ini();
  35.  
  36.     printf("Poking vectors 6 and 7 to fixed values.\n");
  37.     poke((p_addr)26,0x6626); poke((p_addr)24,0x6624);
  38.     poke((p_addr)30,0x7730); poke((p_addr)28,0x7728);
  39.  
  40.     printf("Contents of vector 6 are %04x:%04x.\n",
  41.     peek((p_addr)26), peek((p_addr)24));
  42.     printf("Contents of vector 7 are %04x:%04x.\n",
  43.     peek((p_addr)30), peek((p_addr)28));
  44.  
  45.     printf("Setting vector 6 to 0123:4567.\n");
  46.     if (!int_setup(6, 0x4567, 0x0123)) {
  47.     printf("Error return from int_setup().\n");
  48.     }
  49.     printf("Contents of vector 6 are %04x:%04x.\n",
  50.     peek((p_addr)26), peek((p_addr)24));
  51.  
  52.     prevvec = int_prev(6);
  53.     printf("Previous contents were %04x:%04x.\n",
  54.     (int)(prevvec >> 16), (int)(prevvec &0xffff));
  55.  
  56.     printf("Setting vector 7 to 7162:5344.\n");
  57.     if (!int_setu(7, 0x5344, 0x7162)) {
  58.     printf("Error return from int_setup().\n");
  59.     }
  60.     printf("Contents of vector 7 are %04x:%04x.\n",
  61.     peek((p_addr)30), peek((p_addr)28));
  62.  
  63.     printf("Attempting to reset vector 7 to 3333:4444.\n");
  64.     if (int_setu(7, 0x4444, 0x3333)) {
  65.     printf("Unexpected successful return from int_setup().\n");
  66.     } else {
  67.     printf("Expected unsuccessful return from int_setup().\n");
  68.     }
  69.     printf("Contents of vector 7 are %04x:%04x.\n",
  70.     peek((p_addr)30), peek((p_addr)28));
  71.  
  72.     printf("Restoring vector 7.\n");
  73.     if (!int_restore(7)) {
  74.     printf("Error return from int_restore().\n");
  75.     }
  76.     printf("Contents of vector 7 are %04x:%04x.\n",
  77.     peek((p_addr)30), peek((p_addr)28));
  78.  
  79.     printf("Terminating interrupt service.\n");
  80.     int_trm();
  81.     printf("Contents of vector 6 are %04x:%04x.\n",
  82.     peek((p_addr)26), peek((p_addr)24));
  83.  
  84.     printf("Done.\n");
  85. }
  86.